Cocos Creator 微信小游戏开放数据域适配

石朝辉2019-04-11 10:53Cocos Cocos Creator 微信小游戏Cocos Cocos Creator 微信小游戏 开放数据域

转载请注明出处,点击此处open in new window 查看更多精彩内容

首先祭出官方文档

微信小游戏开放数据域open in new window

Creator 接入微信小游戏的开放数据域open in new window

备注: 开放数据域简称为子域,常规游戏内容为主域

适配步骤

  1. 主域中创建一个节点作为子域容器,为容器节点添加 WXSubContextView 组件用于设置子域视窗以及更新子域贴图。
  2. 创建子域项目,根据自身需求制作 UI 的展示。

适配要点

  • 子域场景的 Canvas 组件设计分辨率必须与主域中容器节点的宽高比相同以防拉伸。
  • 若主域中容器节点使用 Widget 适配父节点,或者其他原因导致容器节点尺寸改变,必须在尺寸改变后更新子域视窗。
// 立即对齐,不调用该函数的话,将会等到下一帧对齐
widget.updateAlignment();
// 重置子域视窗
wxSubContextView.reset();
  • 子域应当尽量显示最少内容,比如排行榜页面仅在子域显示排行榜列表,标题之类的静态内容放在主域显示。
  • 若子域为静态页面,不需要每帧更新贴图,可以禁用组件来阻止每帧更新,并在需要的时候调用 update 函数更新。
wxSubContextView.enabled = false;
wxSubContextView.update();

解决切换页面时先显示旧数据后刷新数据的问题

由于子域每帧都在绘制,所以当切换子域页面时,可能会先把旧的数据刷新到主域,然后才加载到新的数据进行刷新。 解决这个问题,需要在切换页面前(或关闭页面时)隐藏子域显示的场景(加载一个空的场景)即可。

最后更新于 2024-02-04 02:20:03